<!DOCTYPE HTML>
<html lang="en" >
    
    <head>
        
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=11; IE=10; IE=9; IE=8; IE=7; IE=EDGE" />
        <title>上传多个文件 | iOS 网络编程</title>
        <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
        <meta name="description" content="">
        <meta name="generator" content="GitBook 2.0.1">
        
        
        <meta name="HandheldFriendly" content="true"/>
        <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
        <meta name="apple-mobile-web-app-capable" content="yes">
        <meta name="apple-mobile-web-app-status-bar-style" content="black">
        <link rel="apple-touch-icon-precomposed" sizes="152x152" href="gitbook/images/apple-touch-icon-precomposed-152.png">
        <link rel="shortcut icon" href="gitbook/images/favicon.ico" type="image/x-icon">
        
    
    
    <link rel="next" href="./post_method_03_restful.html" />
    
    
    <link rel="prev" href="./post_method-01-upload_file.html" />
    

        
    </head>
    <body>
        
        
    <link rel="stylesheet" href="gitbook/style.css">
    
    

        
    <div class="book" data-level="0.7.2" data-basepath="." data-revision="Fri Jun 12 2015 06:59:00 GMT+0800 (CST)">
    

<div class="book-summary">
    <div class="book-search">
        <input type="text" placeholder="Type to search" class="form-control" />
    </div>
    <ul class="summary">
        
        
        
        

        

        
    
        <li class="chapter " data-level="0" data-path="index.html">
            
                
                    <a href="./index.html">
                        <i class="fa fa-check"></i>
                        
                        网络
                    </a>
                
            
            
            <ul class="articles">
                
    
        <li class="chapter " data-level="0.1" data-path="basic.html">
            
                
                    <a href="./basic.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.1.</b>
                        
                        基本概念
                    </a>
                
            
            
            <ul class="articles">
                
    
        <li class="chapter " data-level="0.1.1" data-path="basic-00-apache.html">
            
                
                    <a href="./basic-00-apache.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.1.1.</b>
                        
                        配置 Apache 服务器
                    </a>
                
            
            
        </li>
    
        <li class="chapter " data-level="0.1.2" data-path="basic-01-http.html">
            
                
                    <a href="./basic-01-http.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.1.2.</b>
                        
                        HTTP
                    </a>
                
            
            
        </li>
    
        <li class="chapter " data-level="0.1.3" data-path="basic-02-dev.html">
            
                
                    <a href="./basic-02-dev.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.1.3.</b>
                        
                        开发方案
                    </a>
                
            
            
        </li>
    
        <li class="chapter " data-level="0.1.4" data-path="basic-03-nsurlconnection.html">
            
                
                    <a href="./basic-03-nsurlconnection.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.1.4.</b>
                        
                        NSURLConnection
                    </a>
                
            
            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="0.2" data-path="socket.html">
            
                
                    <a href="./socket.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.2.</b>
                        
                        socket
                    </a>
                
            
            
            <ul class="articles">
                
    
        <li class="chapter " data-level="0.2.1" data-path="socket-01-basic_code.html">
            
                
                    <a href="./socket-01-basic_code.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.2.1.</b>
                        
                        Socket 基本演练
                    </a>
                
            
            
        </li>
    
        <li class="chapter " data-level="0.2.2" data-path="socket-02-chat.html">
            
                
                    <a href="./socket-02-chat.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.2.2.</b>
                        
                        Socket 聊天
                    </a>
                
            
            
        </li>
    
        <li class="chapter " data-level="0.2.3" data-path="socket-03-baidu.html">
            
                
                    <a href="./socket-03-baidu.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.2.3.</b>
                        
                        Socket 加载百度
                    </a>
                
            
            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="0.3" data-path="serialization.html">
            
                
                    <a href="./serialization.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.3.</b>
                        
                        数据解析
                    </a>
                
            
            
            <ul class="articles">
                
    
        <li class="chapter " data-level="0.3.1" data-path="serialization-01-json.html">
            
                
                    <a href="./serialization-01-json.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.3.1.</b>
                        
                        JSON 解析
                    </a>
                
            
            
            <ul class="articles">
                
    
        <li class="chapter " data-level="0.3.1.1" data-path="json-01-framework.html">
            
                
                    <a href="./json-01-framework.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.3.1.1.</b>
                        
                        JSON 解析第三方框架
                    </a>
                
            
            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="0.3.2" data-path="serialization-03-plist.html">
            
                
                    <a href="./serialization-03-plist.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.3.2.</b>
                        
                        PList解析
                    </a>
                
            
            
        </li>
    
        <li class="chapter " data-level="0.3.3" data-path="serialization-04-xml.html">
            
                
                    <a href="./serialization-04-xml.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.3.3.</b>
                        
                        XML介绍
                    </a>
                
            
            
            <ul class="articles">
                
    
        <li class="chapter " data-level="0.3.3.1" data-path="xml-01-preparation.html">
            
                
                    <a href="./xml-01-preparation.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.3.3.1.</b>
                        
                        准备工作
                    </a>
                
            
            
        </li>
    
        <li class="chapter " data-level="0.3.3.2" data-path="xml-02-parser.html">
            
                
                    <a href="./xml-02-parser.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.3.3.2.</b>
                        
                        解析
                    </a>
                
            
            
        </li>
    
        <li class="chapter " data-level="0.3.3.3" data-path="xml-03-tableview.html">
            
                
                    <a href="./xml-03-tableview.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.3.3.3.</b>
                        
                        绑定表格
                    </a>
                
            
            
        </li>
    
        <li class="chapter " data-level="0.3.3.4" data-path="xml-04-copy_properties.html">
            
                
                    <a href="./xml-04-copy_properties.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.3.3.4.</b>
                        
                        Copy 属性
                    </a>
                
            
            
        </li>
    
        <li class="chapter " data-level="0.3.3.5" data-path="xml-05-refactor.html">
            
                
                    <a href="./xml-05-refactor.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.3.3.5.</b>
                        
                        重构
                    </a>
                
            
            
        </li>
    
        <li class="chapter " data-level="0.3.3.6" data-path="xml-06-dom.html">
            
                
                    <a href="./xml-06-dom.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.3.3.6.</b>
                        
                        DOM 解析
                    </a>
                
            
            
        </li>
    

            </ul>
            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="0.4" data-path="get_&amp;_post.html">
            
                
                    <a href="./get_&amp;_post.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.4.</b>
                        
                        GET &amp; POST
                    </a>
                
            
            
            <ul class="articles">
                
    
        <li class="chapter " data-level="0.4.1" data-path="get_&amp;_post-01-cachedurlresponse.html">
            
                
                    <a href="./get_&amp;_post-01-cachedurlresponse.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.4.1.</b>
                        
                        GET 缓存
                    </a>
                
            
            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="0.5" data-path="user_login.html">
            
                
                    <a href="./user_login.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.5.</b>
                        
                        用户登录
                    </a>
                
            
            
            <ul class="articles">
                
    
        <li class="chapter " data-level="0.5.1" data-path="user_login-01-get&amp;post_login.html">
            
                
                    <a href="./user_login-01-get&amp;post_login.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.5.1.</b>
                        
                        GET &amp; POST 登录
                    </a>
                
            
            
        </li>
    
        <li class="chapter " data-level="0.5.2" data-path="user_login-02-save_&amp;_load_user_info.html">
            
                
                    <a href="./user_login-02-save_&amp;_load_user_info.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.5.2.</b>
                        
                        保存 &amp; 加载用户信息
                    </a>
                
            
            
        </li>
    
        <li class="chapter " data-level="0.5.3" data-path="user_login-03-refactor.html">
            
                
                    <a href="./user_login-03-refactor.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.5.3.</b>
                        
                        代码重构
                    </a>
                
            
            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="0.6" data-path="cipher.html">
            
                
                    <a href="./cipher.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.6.</b>
                        
                        密码学
                    </a>
                
            
            
            <ul class="articles">
                
    
        <li class="chapter " data-level="0.6.1" data-path="cipher-01-base64.html">
            
                
                    <a href="./cipher-01-base64.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.6.1.</b>
                        
                        Base64
                    </a>
                
            
            
        </li>
    
        <li class="chapter " data-level="0.6.2" data-path="cipher-02-md5.html">
            
                
                    <a href="./cipher-02-md5.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.6.2.</b>
                        
                        MD5
                    </a>
                
            
            
        </li>
    
        <li class="chapter " data-level="0.6.3" data-path="cipher-03-key_chain.html">
            
                
                    <a href="./cipher-03-key_chain.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.6.3.</b>
                        
                        钥匙串
                    </a>
                
            
            
        </li>
    
        <li class="chapter " data-level="0.6.4" data-path="cipher-04-aes.html">
            
                
                    <a href="./cipher-04-aes.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.6.4.</b>
                        
                        对称加密算法
                    </a>
                
            
            
        </li>
    
        <li class="chapter " data-level="0.6.5" data-path="cipher-05-rsa.html">
            
                
                    <a href="./cipher-05-rsa.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.6.5.</b>
                        
                        非对称加密算法
                    </a>
                
            
            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="0.7" data-path="post_method.html">
            
                
                    <a href="./post_method.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.7.</b>
                        
                        POST增强
                    </a>
                
            
            
            <ul class="articles">
                
    
        <li class="chapter " data-level="0.7.1" data-path="post_method-01-upload_file.html">
            
                
                    <a href="./post_method-01-upload_file.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.7.1.</b>
                        
                        上传单个文件
                    </a>
                
            
            
        </li>
    
        <li class="chapter active" data-level="0.7.2" data-path="post_method-02-upload_multi_files.html">
            
                
                    <a href="./post_method-02-upload_multi_files.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.7.2.</b>
                        
                        上传多个文件
                    </a>
                
            
            
        </li>
    
        <li class="chapter " data-level="0.7.3" data-path="post_method_03_restful.html">
            
                
                    <a href="./post_method_03_restful.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.7.3.</b>
                        
                        RESTful设计风格
                    </a>
                
            
            
        </li>
    
        <li class="chapter " data-level="0.7.4" data-path="post_method-04-post_json.html">
            
                
                    <a href="./post_method-04-post_json.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.7.4.</b>
                        
                        POST JSON
                    </a>
                
            
            
        </li>
    
        <li class="chapter " data-level="0.7.5" data-path="post_method-05-post_custom_object.html">
            
                
                    <a href="./post_method-05-post_custom_object.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.7.5.</b>
                        
                        POST 自定义对象
                    </a>
                
            
            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="0.8" data-path="download.html">
            
                
                    <a href="./download.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.8.</b>
                        
                        NSURLConnection下载
                    </a>
                
            
            
            <ul class="articles">
                
    
        <li class="chapter " data-level="0.8.1" data-path="download-01-head_method.html">
            
                
                    <a href="./download-01-head_method.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.8.1.</b>
                        
                        HTTP HEAD方法
                    </a>
                
            
            
        </li>
    
        <li class="chapter " data-level="0.8.2" data-path="download-02-nsurlconnectiondownloaddelegate.html">
            
                
                    <a href="./download-02-nsurlconnectiondownloaddelegate.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.8.2.</b>
                        
                        NSURLConnectionDownloadDelegate
                    </a>
                
            
            
        </li>
    
        <li class="chapter " data-level="0.8.3" data-path="download-03-download_progress.html">
            
                
                    <a href="./download-03-download_progress.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.8.3.</b>
                        
                        下载进度
                    </a>
                
            
            
        </li>
    
        <li class="chapter " data-level="0.8.4" data-path="download-04-nsfilehandle.html">
            
                
                    <a href="./download-04-nsfilehandle.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.8.4.</b>
                        
                        NSFileHandle拼接文件
                    </a>
                
            
            
        </li>
    
        <li class="chapter " data-level="0.8.5" data-path="download-05-nsoutputstream.html">
            
                
                    <a href="./download-05-nsoutputstream.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.8.5.</b>
                        
                        NSOutputStream拼接文件
                    </a>
                
            
            
        </li>
    
        <li class="chapter " data-level="0.8.6" data-path="download-06-resume_download.html">
            
                
                    <a href="./download-06-resume_download.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.8.6.</b>
                        
                        断点续传
                    </a>
                
            
            
        </li>
    
        <li class="chapter " data-level="0.8.7" data-path="download-07-multithread.html">
            
                
                    <a href="./download-07-multithread.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.8.7.</b>
                        
                        多线程
                    </a>
                
            
            
        </li>
    
        <li class="chapter " data-level="0.8.8" data-path="download-08-call_back.html">
            
                
                    <a href="./download-08-call_back.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.8.8.</b>
                        
                        完成回调
                    </a>
                
            
            
        </li>
    
        <li class="chapter " data-level="0.8.9" data-path="download-09-pause_download.html">
            
                
                    <a href="./download-09-pause_download.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.8.9.</b>
                        
                        暂停下载
                    </a>
                
            
            
        </li>
    
        <li class="chapter " data-level="0.8.10" data-path="download-10-progress_view.html">
            
                
                    <a href="./download-10-progress_view.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.8.10.</b>
                        
                        下载进度视图
                    </a>
                
            
            
        </li>
    
        <li class="chapter " data-level="0.8.11" data-path="download-11-download_manager.html">
            
                
                    <a href="./download-11-download_manager.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.8.11.</b>
                        
                        下载管理器
                    </a>
                
            
            
        </li>
    
        <li class="chapter " data-level="0.8.12" data-path="download-12-nsoperation.html">
            
                
                    <a href="./download-12-nsoperation.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.8.12.</b>
                        
                        NSOperation
                    </a>
                
            
            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="0.9" data-path="nsurlsession.html">
            
                
                    <a href="./nsurlsession.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.9.</b>
                        
                        NSURLSession
                    </a>
                
            
            
            <ul class="articles">
                
    
        <li class="chapter " data-level="0.9.1" data-path="nsurlsession-01-common_code.html">
            
                
                    <a href="./nsurlsession-01-common_code.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.9.1.</b>
                        
                        常见代码
                    </a>
                
            
            
        </li>
    
        <li class="chapter " data-level="0.9.2" data-path="nsurlsession-02-download.html">
            
                
                    <a href="./nsurlsession-02-download.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.9.2.</b>
                        
                        下载 &amp; 解压缩
                    </a>
                
            
            
            <ul class="articles">
                
    
        <li class="chapter " data-level="0.9.2.1" data-path="nsurlsession-02-download-01-progress.html">
            
                
                    <a href="./nsurlsession-02-download-01-progress.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.9.2.1.</b>
                        
                        下载进度跟进
                    </a>
                
            
            
        </li>
    
        <li class="chapter " data-level="0.9.2.2" data-path="nsurlsession-02-download-02-resume_data.html">
            
                
                    <a href="./nsurlsession-02-download-02-resume_data.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.9.2.2.</b>
                        
                        断点续传
                    </a>
                
            
            
        </li>
    
        <li class="chapter " data-level="0.9.2.3" data-path="nsurlsession-02-download-03-download_manager.html">
            
                
                    <a href="./nsurlsession-02-download-03-download_manager.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.9.2.3.</b>
                        
                        下载管理器
                    </a>
                
            
            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="0.9.3" data-path="nsurlsession-03-webdav.html">
            
                
                    <a href="./nsurlsession-03-webdav.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.9.3.</b>
                        
                        WebDav演练
                    </a>
                
            
            
        </li>
    
        <li class="chapter " data-level="0.9.4" data-path="nsurlsession-04-configuration.html">
            
                
                    <a href="./nsurlsession-04-configuration.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.9.4.</b>
                        
                        Configuration
                    </a>
                
            
            
        </li>
    
        <li class="chapter " data-level="0.9.5" data-path="nsurlsession-05-post_upload.html">
            
                
                    <a href="./nsurlsession-05-post_upload.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.9.5.</b>
                        
                        POST 上传
                    </a>
                
            
            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="0.10" data-path="https.html">
            
                
                    <a href="./https.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.10.</b>
                        
                        HTTPS
                    </a>
                
            
            
        </li>
    
        <li class="chapter " data-level="0.11" data-path="biometrics.html">
            
                
                    <a href="./biometrics.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.11.</b>
                        
                        指纹识别
                    </a>
                
            
            
        </li>
    
        <li class="chapter " data-level="0.12" data-path="appendix.html">
            
                
                    <a href="./appendix.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.12.</b>
                        
                        附录
                    </a>
                
            
            
            <ul class="articles">
                
    
        <li class="chapter " data-level="0.12.1" data-path="appendix-01-archiver_&amp;_unarchiver.html">
            
                
                    <a href="./appendix-01-archiver_&amp;_unarchiver.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.12.1.</b>
                        
                        归档 &amp; 解档
                    </a>
                
            
            
        </li>
    
        <li class="chapter " data-level="0.12.2" data-path="appendix-02-caanimation.html">
            
                
                    <a href="./appendix-02-caanimation.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.12.2.</b>
                        
                        核心动画
                    </a>
                
            
            
        </li>
    
        <li class="chapter " data-level="0.12.3" data-path="appendix-03-kvo.html">
            
                
                    <a href="./appendix-03-kvo.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.12.3.</b>
                        
                        KVO
                    </a>
                
            
            
        </li>
    
        <li class="chapter " data-level="0.12.4" data-path="appendix-04-nil&amp;null.html">
            
                
                    <a href="./appendix-04-nil&amp;null.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.12.4.</b>
                        
                        nil&amp;null&amp;Nil&amp;NSNull
                    </a>
                
            
            
        </li>
    
        <li class="chapter " data-level="0.12.5" data-path="appendix-http_request_field.html">
            
                
                    <a href="./appendix-http_request_field.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.12.5.</b>
                        
                        常用 HTTP 请求字段
                    </a>
                
            
            
        </li>
    
        <li class="chapter " data-level="0.12.6" data-path="appendix-cocoapods.html">
            
                
                    <a href="./appendix-cocoapods.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.12.6.</b>
                        
                        Cocoapods
                    </a>
                
            
            
        </li>
    

            </ul>
            
        </li>
    

            </ul>
            
        </li>
    


        
        <li class="divider"></li>
        <li>
            <a href="https://www.gitbook.com" target="blank" class="gitbook-link">
                Published with GitBook
            </a>
        </li>
        
    </ul>
</div>

    <div class="book-body">
        <div class="body-inner">
            <div class="book-header">
    <!-- Actions Left -->
    <a href="#" class="btn pull-left toggle-summary" aria-label="Table of Contents"><i class="fa fa-align-justify"></i></a>
    <a href="#" class="btn pull-left toggle-search" aria-label="Search"><i class="fa fa-search"></i></a>
    
    <div id="font-settings-wrapper" class="dropdown pull-left">
        <a href="#" class="btn toggle-dropdown" aria-label="Font Settings"><i class="fa fa-font"></i>
        </a>
        <div class="dropdown-menu font-settings">
    <div class="dropdown-caret">
        <span class="caret-outer"></span>
        <span class="caret-inner"></span>
    </div>

    <div class="buttons">
        <button type="button" id="reduce-font-size" class="button size-2">A</button>
        <button type="button" id="enlarge-font-size" class="button size-2">A</button>
    </div>

    <div class="buttons font-family-list">
        <button type="button" data-font="0" class="button">Serif</button>
        <button type="button" data-font="1" class="button">Sans</button>
    </div>

    <div class="buttons color-theme-list">
        <button type="button" id="color-theme-preview-0" class="button size-3" data-theme="0">White</button>
        <button type="button" id="color-theme-preview-1" class="button size-3" data-theme="1">Sepia</button>
        <button type="button" id="color-theme-preview-2" class="button size-3" data-theme="2">Night</button>
    </div>
</div>

    </div>

    <!-- Actions Right -->
    
    <div class="dropdown pull-right">
        <a href="#" class="btn toggle-dropdown" aria-label="Share"><i class="fa fa-share-alt"></i>
        </a>
        <div class="dropdown-menu font-settings dropdown-left">
            <div class="dropdown-caret">
                <span class="caret-outer"></span>
                <span class="caret-inner"></span>
            </div>
            <div class="buttons">
                <button type="button" data-sharing="twitter" class="button">
                    Share on Twitter
                </button>
                <button type="button" data-sharing="google-plus" class="button">
                    Share on Google
                </button>
                <button type="button" data-sharing="facebook" class="button">
                    Share on Facebook
                </button>
                <button type="button" data-sharing="weibo" class="button">
                    Share on Weibo
                </button>
                <button type="button" data-sharing="instapaper" class="button">
                    Share on Instapaper
                </button>
            </div>
        </div>
    </div>
    

    
    <a href="#" target="_blank" class="btn pull-right google-plus-sharing-link sharing-link" data-sharing="google-plus" aria-label="Google"><i class="fa fa-google-plus"></i></a>
    
    
    <a href="#" target="_blank" class="btn pull-right facebook-sharing-link sharing-link" data-sharing="facebook" aria-label="Facebook"><i class="fa fa-facebook"></i></a>
    
    
    <a href="#" target="_blank" class="btn pull-right twitter-sharing-link sharing-link" data-sharing="twitter" aria-label="Twitter"><i class="fa fa-twitter"></i></a>
    
    

    <!-- Title -->
    <h1>
        <i class="fa fa-circle-o-notch fa-spin"></i>
        <a href="./" >iOS 网络编程</a>
    </h1>
</div>

            <div class="page-wrapper" tabindex="-1">
                <div class="page-inner">
                
                
                    <section class="normal" id="section-">
                    
                        <h1 id="%E4%B8%8A%E4%BC%A0%E5%A4%9A%E4%B8%AA%E6%96%87%E4%BB%B6">&#x4E0A;&#x4F20;&#x591A;&#x4E2A;&#x6587;&#x4EF6;</h1>
<h2 id="%E9%9C%80%E6%B1%82">&#x9700;&#x6C42;</h2>
<ul>
<li>&#x6709;&#x4E9B;&#x670D;&#x52A1;&#x5668;&#x53EF;&#x4EE5;&#x5728;&#x4E0A;&#x4F20;&#x6587;&#x4EF6;&#x7684;&#x540C;&#x65F6;&#xFF0C;&#x63D0;&#x4EA4;&#x4E00;&#x4E9B;&#x6587;&#x672C;&#x5185;&#x5BB9;&#x7ED9;&#x670D;&#x52A1;&#x5668;</li>
<li>&#x5178;&#x578B;&#x5E94;&#x7528;&#xFF1A;&#x65B0;&#x6D6A;&#x5FAE;&#x535A;&#xFF0C;&#x4E0A;&#x4F20;&#x56FE;&#x7247;&#x7684;&#x540C;&#x65F6;&#xFF0C;&#x53D1;&#x9001;&#x4E00;&#x4E2A;&#x5FAE;&#x535A;&#xFF01;</li>
</ul>
<h2 id="%E4%B8%8A%E4%BC%A0%E5%8E%9F%E7%90%86">&#x4E0A;&#x4F20;&#x539F;&#x7406;</h2>
<ul>
<li>&#x7528; firebug &#x6F14;&#x793A; upload-m.php</li>
<li>&#x6CE8;&#x610F;&#x4FEE;&#x6539; abc &#x6587;&#x4EF6;&#x5939;&#x7684;&#x8BBF;&#x95EE;&#x6743;&#x9650;</li>
</ul>
<h2 id="%E4%B8%8A%E4%BC%A0%E5%A4%9A%E4%B8%AA%E6%96%87%E4%BB%B6">&#x4E0A;&#x4F20;&#x591A;&#x4E2A;&#x6587;&#x4EF6;</h2>
<ul>
<li>&#x8BF7;&#x6C42;&#x683C;&#x5F0F;</li>
</ul>
<pre><code>Content-Type: multipart/form-data; boundary=boundary
</code></pre><ul>
<li>&#x6570;&#x636E;&#x683C;&#x5F0F;</li>
</ul>
<pre><code>--boundary\r\n
Content-Disposition: form-data; name=&quot;userfile[]&quot;; filename=&quot;aaa.txt&quot;\r\n
Content-Type: application/octet-stream\r\n\r\n

&#x4E8C;&#x8FDB;&#x5236;&#x6570;&#x636E;
\r\n
--boundary\r\n
Content-Disposition: form-data; name=&quot;userfile[]&quot;; filename=&quot;aaa&#x526F;&#x672C;.txt&quot;\r\n
Content-Type: application/octet-stream\r\n\r\n

&#x4E8C;&#x8FDB;&#x5236;&#x6570;&#x636E;
\r\n
--boundary\r\n
// status &#x662F;&#x811A;&#x672C;&#x6587;&#x4EF6;&#x63A5;&#x6536;&#x53C2;&#x6570;&#x7684;&#x540D;&#x79F0;
Content-Disposition: form-data; name=&quot;status&quot;\r\n\r\n

&#x4E8C;&#x8FDB;&#x5236;&#x6570;&#x636E;
\r\n
--boundary--
</code></pre><h2 id="%E4%BB%A3%E7%A0%81%E5%AE%9E%E7%8E%B0">&#x4EE3;&#x7801;&#x5B9E;&#x73B0;</h2>
<h3 id="%E5%87%86%E5%A4%87%E6%95%B0%E6%8D%AE%E7%A1%AE%E8%AE%A4%E5%8F%82%E6%95%B0">&#x51C6;&#x5907;&#x6570;&#x636E;&#x786E;&#x8BA4;&#x53C2;&#x6570;</h3>
<pre><code class="lang-objc">- (<span class="hljs-keyword">void</span>)touchesBegan:(<span class="hljs-built_in">NSSet</span> *)touches withEvent:(UIEvent *)event {

    <span class="hljs-comment">// 1. &#x4E0A;&#x4F20;&#x6587;&#x4EF6;&#x6570;&#x636E;</span>
    <span class="hljs-built_in">NSURL</span> *fileURL1 = [[<span class="hljs-built_in">NSBundle</span> mainBundle] URLForResource:<span class="hljs-string">@&quot;001.png&quot;</span> withExtension:<span class="hljs-literal">nil</span>];
    <span class="hljs-built_in">NSData</span> *data1 = [<span class="hljs-built_in">NSData</span> dataWithContentsOfURL:fileURL1];

    <span class="hljs-built_in">NSURL</span> *fileURL2 = [[<span class="hljs-built_in">NSBundle</span> mainBundle] URLForResource:<span class="hljs-string">@&quot;demo.jpg&quot;</span> withExtension:<span class="hljs-literal">nil</span>];
    <span class="hljs-built_in">NSData</span> *data2 = [<span class="hljs-built_in">NSData</span> dataWithContentsOfURL:fileURL2];

    <span class="hljs-comment">// &#x5982;&#x4F55;&#x4F20;&#x9012;&#x53C2;&#x6570; &#xFF0D; &#x7528;&#x5B57;&#x5178;&#x4F20;&#x9012;&#x53C2;&#x6570;</span>
    <span class="hljs-built_in">NSDictionary</span> *dataDict = @{<span class="hljs-string">@&quot;001.png&quot;</span>: data1, <span class="hljs-string">@&quot;002.jpg&quot;</span>: data2};

    <span class="hljs-comment">// 2. &#x5B57;&#x7B26;&#x4E32;&#x53C2;&#x6570;</span>
    <span class="hljs-built_in">NSDictionary</span> *params = @{<span class="hljs-string">@&quot;status&quot;</span>: <span class="hljs-string">@&quot;how are you&quot;</span>};

    <span class="hljs-comment">// 3. &#x4E0A;&#x4F20;&#x6587;&#x4EF6;&#x5E76;&#x4E14;&#x63D0;&#x4EA4;&#x53C2;&#x6570;</span>
    [<span class="hljs-keyword">self</span> uploadFile:<span class="hljs-string">@&quot;userfile[]&quot;</span> dataDict:dataDict params:params];
}
</code></pre>
<h3 id="%E4%B8%8A%E4%BC%A0%E6%96%87%E4%BB%B6">&#x4E0A;&#x4F20;&#x6587;&#x4EF6;</h3>
<pre><code class="lang-objc"><span class="hljs-preprocessor">#define boundary @<span class="hljs-title">&quot;itcast-upload&quot;</span></span>

<span class="hljs-comment">///  &#x4E0A;&#x4F20;&#x6587;&#x4EF6;</span>
<span class="hljs-comment">///</span>
<span class="hljs-comment">///  @param fieldName &#x670D;&#x52A1;&#x5668;&#x5B57;&#x6BB5;&#x540D;</span>
<span class="hljs-comment">///  @param dataDict  &#x4E0A;&#x4F20;&#x6587;&#x4EF6;&#x6570;&#x636E;&#x5B57;&#x5178; &quot;&#x4FDD;&#x5B58;&#x5728;&#x670D;&#x52A1;&#x5668;&#x6587;&#x4EF6;&#x540D;&quot;: &#x4E8C;&#x8FDB;&#x5236;&#x6570;&#x636E;</span>
<span class="hljs-comment">///  @param params    &#x63D0;&#x4EA4;&#x53C2;&#x6570;&#x5B57;&#x5178;</span>
- (<span class="hljs-keyword">void</span>)uploadFile:(<span class="hljs-built_in">NSString</span> *)fieldName dataDict:(<span class="hljs-built_in">NSDictionary</span> *)dataDict params:(<span class="hljs-built_in">NSDictionary</span> *)params {

    <span class="hljs-comment">// 1. url</span>
    <span class="hljs-built_in">NSURL</span> *url = [<span class="hljs-built_in">NSURL</span> URLWithString:<span class="hljs-string">@&quot;http://10.0.1.8/post/upload-m.php&quot;</span>];

    <span class="hljs-comment">// 2. request</span>
    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
    request<span class="hljs-variable">.HTTPMethod</span> = <span class="hljs-string">@&quot;POST&quot;</span>;

    <span class="hljs-built_in">NSString</span> *typeValue = [<span class="hljs-built_in">NSString</span> stringWithFormat:<span class="hljs-string">@&quot;multipart/form-data; boundary=%@&quot;</span>, boundary];
    [request setValue:typeValue forHTTPHeaderField:<span class="hljs-string">@&quot;Content-Type&quot;</span>];

    request<span class="hljs-variable">.HTTPBody</span> = [<span class="hljs-keyword">self</span> formData:fieldName dataDict:dataDict params:params];

    [<span class="hljs-built_in">NSURLConnection</span> sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response, <span class="hljs-built_in">NSData</span> *data, <span class="hljs-built_in">NSError</span> *connectionError) {

        <span class="hljs-built_in">NSLog</span>(<span class="hljs-string">@&quot;%@&quot;</span>, [NSJSONSerialization JSONObjectWithData:data options:<span class="hljs-number">0</span> error:<span class="hljs-literal">NULL</span>]);
    }];
}
</code></pre>
<h3 id="%E7%94%9F%E6%88%90-formdata-%E6%95%B0%E6%8D%AE">&#x751F;&#x6210; formData &#x6570;&#x636E;</h3>
<pre><code class="lang-objc"><span class="hljs-comment">///  &#x751F;&#x6210; formData &#x4E8C;&#x8FDB;&#x5236;&#x6570;&#x636E;</span>
<span class="hljs-comment">///</span>
<span class="hljs-comment">///  @param fieldName &#x670D;&#x52A1;&#x5668;&#x5B57;&#x6BB5;&#x540D;</span>
<span class="hljs-comment">///  @param dataDict  &#x4E0A;&#x4F20;&#x6587;&#x4EF6;&#x6570;&#x636E;&#x5B57;&#x5178; &quot;&#x4FDD;&#x5B58;&#x5728;&#x670D;&#x52A1;&#x5668;&#x6587;&#x4EF6;&#x540D;&quot;: &#x4E8C;&#x8FDB;&#x5236;&#x6570;&#x636E;</span>
<span class="hljs-comment">///  @param params    &#x63D0;&#x4EA4;&#x53C2;&#x6570;&#x5B57;&#x5178;</span>
<span class="hljs-comment">///</span>
<span class="hljs-comment">///  @return formData &#x4E8C;&#x8FDB;&#x5236;&#x6570;&#x636E;</span>
- (<span class="hljs-built_in">NSData</span> *)formData:(<span class="hljs-built_in">NSString</span> *)fieldName dataDict:(<span class="hljs-built_in">NSDictionary</span> *)dataDict params:(<span class="hljs-built_in">NSDictionary</span> *)params {

    NSMutableData *dataM = [NSMutableData data];

    <span class="hljs-comment">// 1. &#x751F;&#x6210;&#x6587;&#x4EF6;&#x6570;&#x636E;</span>
    [dataDict enumerateKeysAndObjectsUsingBlock:^(<span class="hljs-built_in">NSString</span> *fileName, <span class="hljs-built_in">NSData</span> *fileData, <span class="hljs-built_in">BOOL</span> *stop) {
        <span class="hljs-built_in">NSMutableString</span> *strM = [<span class="hljs-built_in">NSMutableString</span> string];

        [strM appendFormat:<span class="hljs-string">@&quot;--%@\r\n&quot;</span>, boundary];
        [strM appendFormat:<span class="hljs-string">@&quot;Content-Disposition: form-data; name=\&quot;%@\&quot;; filename=\&quot;%@\&quot;\r\n&quot;</span>, fieldName, fileName];
        [strM appendString:<span class="hljs-string">@&quot;Content-Type: application/octet-stream\r\n\r\n&quot;</span>];

        [dataM appendData:[strM dataUsingEncoding:NSUTF8StringEncoding]];
        [dataM appendData:fileData];

        [dataM appendData:[<span class="hljs-string">@&quot;\r\n&quot;</span> dataUsingEncoding:NSUTF8StringEncoding]];
    }];

    <span class="hljs-comment">// 2. &#x751F;&#x6210;&#x53C2;&#x6570;&#x6570;&#x636E;</span>
    [params enumerateKeysAndObjectsUsingBlock:^(<span class="hljs-built_in">NSString</span> *key, <span class="hljs-built_in">NSString</span> *value, <span class="hljs-built_in">BOOL</span> *stop) {

        <span class="hljs-built_in">NSMutableString</span> *strM = [<span class="hljs-built_in">NSMutableString</span> string];

        [strM appendFormat:<span class="hljs-string">@&quot;--%@\r\n&quot;</span>, boundary];
        [strM appendFormat:<span class="hljs-string">@&quot;Content-Disposition: form-data; name=\&quot;%@\&quot;\r\n\r\n&quot;</span>, key];
        [strM appendString:value];
        [strM appendString:<span class="hljs-string">@&quot;\r\n&quot;</span>];

        [dataM appendData:[strM dataUsingEncoding:NSUTF8StringEncoding]];
    }];

    <span class="hljs-comment">// 3. &#x5C3E;&#x90E8;&#x5B57;&#x7B26;&#x4E32;</span>
    <span class="hljs-built_in">NSString</span> *tail = [<span class="hljs-built_in">NSString</span> stringWithFormat:<span class="hljs-string">@&quot;--%@--&quot;</span>, boundary];
    [dataM appendData:[tail dataUsingEncoding:NSUTF8StringEncoding]];

    <span class="hljs-keyword">return</span> dataM<span class="hljs-variable">.copy</span>;
}
</code></pre>

                    
                    </section>
                
                
                </div>
            </div>
        </div>

        
        <a href="./post_method-01-upload_file.html" class="navigation navigation-prev " aria-label="Previous page: 上传单个文件"><i class="fa fa-angle-left"></i></a>
        
        
        <a href="./post_method_03_restful.html" class="navigation navigation-next " aria-label="Next page: RESTful设计风格"><i class="fa fa-angle-right"></i></a>
        
    </div>
</div>

        
<script src="gitbook/app.js"></script>

<script>
require(["gitbook"], function(gitbook) {
    var config = {"fontSettings":{"theme":null,"family":"sans","size":2}};
    gitbook.start(config);
});
</script>

        
    </body>
    
</html>
